package com.docmgmt.mvp.service;

import com.docmgmt.mvp.dto.*;
import com.docmgmt.mvp.entity.FileShareEntity;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 文件分享表 服务类
 * </p>
 *
 * @author Dora
 */
public interface FileShareService extends IService<FileShareEntity> {

    /**
     * 创建分享链接
     *
     * @param fileId  文件ID
     * @param request 创建请求
     * @param userId  当前用户ID
     * @return 分享VO
     */
    FileShareVO createShare(Long fileId, CreateShareRequest request, Long userId);

    /**
     * 访问分享链接
     *
     * @param shareCode 分享码
     * @param password  访问密码（可选）
     * @return 访问响应
     */
    AccessShareResponse accessShare(String shareCode, String password);

    /**
     * 取消分享
     *
     * @param fileId  文件ID
     * @param shareId 分享ID
     * @param userId  当前用户ID
     */
    void cancelShare(Long fileId, Long shareId, Long userId);

    /**
     * 查询我的分享
     *
     * @param userId   当前用户ID
     * @param page     页码
     * @param pageSize 每页数量
     * @return 分页结果
     */
    PagedResult<FileShareVO> listMyShares(Long userId, Integer page, Integer pageSize);
}
